home *** CD-ROM | disk | FTP | other *** search
/ PC Home 138 / PC Home issue 138.iso / Software / Essentials / Netscape / nim.xpi / bin / chrome / aim.jar / content / aim / AimAppCommands.js < prev    next >
Encoding:
JavaScript  |  2002-10-03  |  7.5 KB  |  236 lines

  1.  
  2. /*
  3. * Name: CommandUpdate_App
  4. * Arguments: none. 
  5. * Description:
  6. * This function is called by the command update handler. Based on the events you specify this get called.
  7. * Right now it is used only by delete.
  8. * Return Value: none
  9. * Author: Suresh Kasinathan<suresh@netscape.com> 8/29/01
  10. */
  11.  
  12. function CommandUpdate_App()
  13. {
  14.   goUpdateCommand("cmd_delete");
  15.   goUpdateCommand("cmd_buddyalert");
  16.   goUpdateCommand("cmd_editbuddyalert");
  17.   goUpdateCommand("cmd_delbuddyalert");
  18.   goUpdateCommand("cmd_disp");
  19. }
  20.  
  21.  
  22. var AppController =
  23. {
  24.   
  25.   supportsCommand: function(command)
  26.   {
  27.     switch (command) {
  28.       case "cmd_delete":
  29.         return true;
  30.         break;
  31.       case "cmd_buddyalert":  
  32.         if (SetMenuBuddyAlert() == false) {
  33.           var result= getSelectedScreenName();
  34.           var Msg1=top.document.getElementById("cmd_buddyalert").getAttribute("buddyAlertMsg1");
  35.           var Msg2=top.document.getElementById("cmd_buddyalert").getAttribute("buddyAlertMsg2");
  36.           var newlabel=Msg1+result+Msg2;
  37.           top.document.getElementById("cmd_buddyalert").setAttribute("hidden","false");
  38.           top.document.getElementById("cmd_buddyalert").setAttribute('label', newlabel);
  39.           goSetAccessKey("cmd_buddyalert", 'buddyAlertAccessKey');
  40.           top.document.getElementById("cmd_editbuddyalert").removeAttribute('label');
  41.           top.document.getElementById("cmd_delbuddyalert").removeAttribute('label');
  42.           top.document.getElementById("cmd_editbuddyalert").setAttribute("hidden", "true");
  43.           top.document.getElementById("cmd_delbuddyalert").setAttribute("hidden", "true");
  44.           return true;
  45.           }
  46.           else 
  47.             return false;
  48.           break;
  49.       case "cmd_editbuddyalert":
  50.           if (SetMenuBuddyAlert() == true) {
  51.              top.document.getElementById("cmd_buddyalert").removeAttribute('label');
  52.              top.document.getElementById("cmd_buddyalert").setAttribute("hidden","true");
  53.              top.document.getElementById("cmd_editbuddyalert").removeAttribute("hidden");
  54.              goSetMenuValue("cmd_editbuddyalert", 'editbuddyAlert');                 
  55.              goSetAccessKey("cmd_editbuddyalert", 'editbuddyAlertAccessKey');
  56.              return true;
  57.           }
  58.           else 
  59.             return false;
  60.         break;
  61.       case "cmd_delbuddyalert":
  62.           if (SetMenuBuddyAlert() == true) {
  63.             var result= getSelectedScreenName();
  64.             var Msg1=top.document.getElementById("cmd_delbuddyalert").getAttribute("delbuddyAlertMsg1");
  65.             var Msg2=top.document.getElementById("cmd_delbuddyalert").getAttribute("delbuddyAlertMsg2");
  66.             var newlabel=Msg1+result+Msg2;
  67.             top.document.getElementById("cmd_delbuddyalert").removeAttribute("hidden");
  68.             top.document.getElementById("cmd_delbuddyalert").setAttribute('label', newlabel);
  69.             goSetAccessKey("cmd_delbuddyalert", 'delbuddyAlertAccessKey');
  70.             return true;
  71.           }
  72.           else 
  73.             return false;
  74.          break;
  75.       case "cmd_disp":
  76.         var screenName = getSelectedScreenName();
  77.         if (aimBuddyIsIcq(screenName)) {
  78.           top.document.getElementById("context-editdispname").removeAttribute("hidden");
  79.           return true;
  80.         }
  81.         else
  82.         {
  83.           top.document.getElementById("context-editdispname").setAttribute("hidden", true);
  84.           return true;
  85.         }
  86.         break;
  87.       case "cmd_sendFile":
  88.         var screenName = getSelectedScreenName();
  89.         if (aimBuddyIsOnline(screenName)) {
  90.             top.document.getElementById("menu_sendFile").removeAttribute("hidden");
  91.             top.document.getElementById("menu_sendFileSep").removeAttribute("hidden");
  92.         }
  93.         else
  94.         {
  95.             top.document.getElementById("menu_sendFile").setAttribute("hidden", true);
  96.             top.document.getElementById("menu_sendFileSep").setAttribute("hidden", true);
  97.         }
  98.       default:
  99.         return true;
  100.     }
  101.   },
  102.  
  103.   isCommandEnabled: function(command)
  104.   {
  105.     switch (command) {
  106.       case "cmd_delete":
  107.         return true;
  108.         break;
  109.       case "cmd_buddyalert":
  110.         return true;
  111.         break;
  112.       case "cmd_delbuddyalert":
  113.         return true;
  114.         break;
  115.       case "cmd_editbuddyalert":
  116.         return true;
  117.         break;
  118.       case "cmd_disp":
  119.         return true;
  120.         break;
  121.       default:
  122.         return true;
  123.     }
  124.   },
  125.  
  126.   doCommand: function(command)
  127.   {
  128.     switch (command) {
  129.       case "cmd_delete":
  130.         cmdDelete();
  131.         break;
  132.       case "cmd_buddyalert":
  133.         cmdBuddyAlert();
  134.         break;
  135.       case "cmd_editbuddyalert":
  136.         cmdBuddyAlert();
  137.         break;
  138.     }
  139.   },
  140.  
  141.   onEvent: function(event)
  142.   {
  143.      dump("Nothing for now ...\n");
  144.   }
  145. };
  146.  
  147. /*
  148. * Name: SetupCommandUpdateHandlers
  149. * Arguments: none. 
  150. * Description:
  151. * This function initializes command update handler. This is called by AppSessionObserver.
  152. * Return Value: none
  153. * Author: Suresh Kasinathan<suresh@netscape.com> 8/29/01
  154. */
  155.  
  156. function AimSetupCommandUpdateHandlers()
  157. {
  158.   var sidebarframe=getsidebarframe();
  159.   var onlineTree;
  160.   var listsetupTree;
  161.   if (sidebarframe) {
  162.     onlineTree = sidebarframe.document.getElementById("OnlineBuddies");
  163.     listsetupTree = sidebarframe.document.getElementById("ListSetup");
  164.   }
  165.   else {
  166.     onlineTree = document.getElementById("OnlineBuddies");
  167.     listsetupTree = document.getElementById("ListSetup");
  168.   }
  169.   
  170.   if (onlineTree) {
  171.     onlineTree.controllers.appendController(AppController);
  172.   }
  173.  
  174.   if (listsetupTree) {
  175.     listsetupTree.controllers.appendController(AppController);
  176.   }
  177. }
  178.  
  179. /*
  180. * Name: onSelectionChange
  181. * Arguments: none. 
  182. * Description:
  183. * This function is called whenever the selection changes in Online tree and list setup tree. 
  184. * Return Value: none
  185. * Author: Suresh Kasinathan<suresh@netscape.com> 8/29/01
  186. */
  187.  
  188. function onSelectionChange(event) {
  189.   goUpdateCommand("cmd_delete");
  190.   goUpdateCommand("cmd_sendFile");
  191.   goUpdateCommand("cmd_disp");
  192.   onItemFocus(event);
  193. }
  194.  
  195. function onItemFocus(event) {
  196.   goUpdateCommand("cmd_buddyalert");
  197.   goUpdateCommand("cmd_editbuddyalert");
  198.   goUpdateCommand("cmd_delbuddyalert");
  199.   goUpdateCommand("cmd_sendFile");
  200.   goUpdateCommand("cmd_disp");  
  201. }
  202.  
  203.  
  204. /*
  205. * Name: SetMenuBuddyAlert
  206. * Arguments: none. 
  207. * Description:
  208. * This function is called to check if the selected screen name is in alert list and show the appropriate alert 
  209. * menu. Do not show menu is a specific screen name was not selected.
  210. * Return Value: screenName
  211. * Author: Prassanna<prass@netscape.com> 
  212. */
  213.  
  214. function SetMenuBuddyAlert() {
  215.       var scrName = getSelectedScreenName();
  216.       if (!scrName  || scrName == null) {
  217.         //remove the buddy alert menu item from people Menu if no screen name was selected
  218.         top.document.getElementById("cmd_buddyalert").removeAttribute('label');
  219.         // Do not set buddy alert menu item (mutiple select or screen name was null);
  220.         return false;
  221.       }
  222.       var isInList = new Object();
  223.       aimBuddyManager().IsBuddyInAlertList(scrName, isInList);
  224.       return isInList.value;
  225. }
  226.  
  227. function sendfile() {
  228.   inviteArgsObj = {
  229.     inviteProposalScreenName: getSelectedScreenName(),
  230.     inviteProposalObj: null,
  231.     inviteToExistingWindow: false,
  232.     inviteMode: 'outgoingfile'
  233.   }
  234.   window.openDialog('chrome://aim/content/sendfile.xul','_blank','chrome,all,dialog=no',inviteArgsObj);
  235. }
  236.